
package View;

import java.awt.*;
import javax.swing.*;
import Model.Ville;
import root.*;


/**
 * La classe LeftPanel est le panel qui contient les boutons de selection
 * et les informations sur la partie courante
 *
 */

public class LeftPanel extends JPanel{
	private BoutonAMenu[] listeBoutons;
	private JLabel[] listeLabel;
	private Ville ville;
	private CurseurPanel curseurpanel;

	private static final int khabitation=0;
	private static final int kcommerce=1;
	private static final int kindustrie=2;
	private static final int kservice=3;
	private static final int kattractif=4;
	private static final int kdestruc=5;

	private static final int kNbBouton=6;
	private static final int kNbLabel=7;

	public LeftPanel(int l, int h, Ville v) {
		super();
		ville =v;
		setPreferredSize(new Dimension(l,h));


		//espace vertical entre les boutons
		FlowLayout layout = new FlowLayout();
		setLayout(layout);
		layout.setVgap(20);

		listeLabel = new JLabel[kNbLabel];
		listeBoutons = new BoutonAMenu[kNbBouton]; // a améliorer

		String[] noms;
		noms = new String[] {"Habitat","Model.Construction.Habitation","Pavillon", "Appartements", "HLM"};
		listeBoutons[khabitation] = new BoutonAMenu(noms);
		listeBoutons[khabitation].setPreferredSize(new Dimension(80, 30));

		noms = new String[] {"Com","Model.Construction.Commerces","Epicerie", "MagasinTextile", "Supermarche"};
		listeBoutons[kcommerce] = new BoutonAMenu(noms);
		listeBoutons[kcommerce].setPreferredSize(new Dimension(80, 30));

		add("east", listeBoutons[khabitation]);
		add("west",listeBoutons[kcommerce]);


		noms = new String[] {"Indus", "Model.Construction.Industrie","FermeLocale", "FermeIndustrielle", "UsineTextileLocale", "UsineTextileIndustrielle"};
		listeBoutons[kindustrie] = new BoutonAMenu(noms);
		listeBoutons[kindustrie].setPreferredSize(new Dimension(80, 30));


		add("east", listeBoutons[kindustrie]);

		noms = new String[] {"Attract", "Model.Construction.BatimentAttractif", "Stade", "HotelVille", "Police", "Cinema"};
		listeBoutons[kattractif] = new BoutonAMenu(noms);
		listeBoutons[kattractif].setPreferredSize(new Dimension(80,30));


		noms = new String[] {"Services", "Model.Construction.Services", "Eau", "Electricite", "Route"};
		listeBoutons[kservice] = new BoutonAMenu(noms);
		listeBoutons[kservice].setPreferredSize(new Dimension(80,30));

		add("east", listeBoutons[kattractif]);
		add("west", listeBoutons[kservice]);


		//ajout bouton suppr
		noms = new String[] {"Destruc", "", "Destruction"};
		listeBoutons[kdestruc] = new BoutonAMenu(noms);
		listeBoutons[kdestruc].setPreferredSize(new Dimension(80,30));

		add(listeBoutons[kdestruc]);

		/// LABELS
		listeLabel[0] = new JLabel("Nb habitant : " + ville.getPopulationActuelle() + "/" + ville.getPopulation());
		listeLabel[1] = new JLabel("Attractivite : " + ville.getAttractivite());
		listeLabel[2] = new JLabel("Argent : " + ville.getArgent());
		listeLabel[3] = new JLabel("Travailleur : " + ville.getTravailleur());
		listeLabel[4] = new JLabel("Securite : " + ville.getSecurite());
		listeLabel[5] = new JLabel("Textile : " + ville.getTextileConsomme());
		listeLabel[6] = new JLabel("Nourriture : "+ ville.getNourritureConsomme());


		add(listeLabel[0]);
		add(listeLabel[1]);
		add(listeLabel[2]);
		add(listeLabel[3]);
		add(listeLabel[4]);
		add(listeLabel[5]);
		add(listeLabel[6]);

		curseurpanel = new CurseurPanel();
		add(curseurpanel);
	}

	public BoutonAMenu[] getListeBoutons() {
		return listeBoutons;
	}

	public CurseurPanel getCurseurPanel() {
		return curseurpanel;
	}

	/** Methode qui sert à mettre à jours les JLabel qui affichent les informations
	 * du jeu.
	 */

	public void updateLabel() {
		listeLabel[0].setText("Nb habitant : " + ville.getPopulationActuelle() + "/" + ville.getPopulation());
		listeLabel[1].setText("Attractivite : " + ville.getAttractivite()+ " %");
		listeLabel[2].setText("Argent : " + ville.getArgent());
		listeLabel[3].setText("Travailleur : " + ville.getTravailleur());
		listeLabel[4].setText("Securite : " + ville.getSecurite());
		listeLabel[5].setText("Textile : " + ville.getTextileConsomme());
		listeLabel[6].setText("Nourriture : "+ ville.getNourritureConsomme());
	}


	public void paintComponent(Graphics g) {
		Graphics2D drawable = (Graphics2D) g;

		drawable.setPaint(Utils.couleurFond);
		drawable.fillRect(0,0, getWidth(), getHeight());
		drawable.setPaint(Utils.blancTransparent);
		drawable.fillRect(0,0, getWidth(), getHeight());

		updateLabel();
	}


}

